「夜ノDevelopers.IO 2016 in Sapporo」でいまどきのネットワーク機器の設定管理ツールの話をしてきました。 #cmdevio2016
こんばんわ、コカコーラ大好き カジです。 ブログのリリースが遅くなってしまいましたが、2016年10月14日(金)に開催された「夜ノDevelopers.IO 2016 in Sapporo」でふとしたきっかけで調査することになったネットワーク機器の設定管理ツールの話をしてきました。
発表資料
フォローアップ
ポイント
「対象機器」(ネットワーク機器の種類)と「やりたいこと」(管理したいこと)で選定しましょう。 設定管理ツールには多機能なものがあることを初めて知りましたが、設定管理だけではなく、ファームウェア管理や、変更検知なども含まれているものもあるので、悩みますね。 本当は国産メーカのルータ設定を管理したいと思って調査し始めましたが、今回試したRANCIDの最新バージョンは開発されていないようでした。
資料中に出てくるPacker、VyOSについて
PackerはPackerでAmazon LinuxのAMI(Amazon Machine Image)を作成するを参照ください。
VyOSについては1つのグローバルIPで複数VPCとVPN接続してみた#reinventとVyOSをAWSで使う時によくやることをまとめてみた を参照して構築ください。
VyOS対応RANCIDサーバ on Amazon Linux 構築用 Packerファイル
手間をかけた点
- Amazon Linuxで構築
- rancidユーザではなく、ec2-userで構築
Packerのファイルをこちらに記載しておきます。
Packer用Jsonファイル
% cat packer-rancid-on-ec2.json { "builders": [ { "type": "amazon-ebs", "access_key": "{{user `aws_access_key`}}", "secret_key": "{{user `aws_secret_key`}}", "region": "ap-northeast-1", "source_ami": "ami-374db956", "instance_type": "t2.micro", "ssh_username": "ec2-user", "ssh_timeout": "10m", "ami_name": "RANCID - Really Awesome New Cisco confIg Differ {{timestamp}}" } ], "provisioners": [ { "type": "shell", "script": "rancid_install.sh" } ] }
上記で利用するスクリプトファイル rancid_install.sh
#!/bin/bash # Packeage Install sudo yum update sudo yum -y install wget ftp telnet gcc cvs expect # rancid install echo "## rancid Install ##" wget ftp://ftp.shrubbery.net/pub/rancid/rancid-3.5.1.tar.gz tar xzvf rancid-*.tar.gz cd rancid-*/ ./configure --prefix=/usr/local/rancid make sudo make install sudo chown -R ec2-user:ec2-user /usr/local/rancid/ sudo chmod 775 /usr/local/rancid/ # Config backup cp -ip /usr/local/rancid/etc/rancid.conf /usr/local/rancid/etc/rancid.conf.org sed -i.bk '/# list of rancid groups/,/^#LIST_OF_GROUPS/cLIST_OF_GROUPS="Routers Switches"' /usr/local/rancid/etc/rancid.conf # cvs Setup /usr/local/rancid/bin/rancid-cvs # VyOS Add cd /home/ec2-user sudo yum -y install git git clone https://bitbucket.org/wzurowski/rancid-vyatta.git cd rancid-vyatta cp vyos.pm /usr/local/rancid/lib/rancid cp vlogin /usr/local/rancid/bin/ cat /usr/local/rancid/etc/rancid.types.base > /usr/local/rancid/etc/rancid.types.conf echo "#" >> /usr/local/rancid/etc/rancid.types.conf cat ./rancid.types.conf >> /usr/local/rancid/etc/rancid.types.conf
まとめ
知らないことが多くあったので、勉強になりました。 また、AnsibleのNetwork Moduleを試してみたいと思いましたし、発表後に弊社吉江 から「Oxidized」というツールについても聞いたので調査してみたいと思いました。
.oO(ViewVCを使わずに、CVS (Concurrent Version System)で差分参照したいと思っていましたが、時間が足りずにできてません。)